package com.bh.ledger.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bh.common.annotation.Excel;
import com.bh.common.core.domain.BhtmsBaseEntityNoCode;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 场站其他费用对象 jc_other_fee ,场站其他费用(修车,变卖资产等成本和收入)
 *
 * @author slx
 * @date 2023-05-21
 */
@EqualsAndHashCode(callSuper = true)
@TableName("jc_other_fee")
@Data
public class JcOtherFee extends BhtmsBaseEntityNoCode {

    /**
     * 发生时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发生时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date csTime;

    /**
     * 税金
     */
    @Excel(name = "税金")
    private BigDecimal input;

    /**
     * 当事人
     */
    @Excel(name = "当事人")
    private String operator;

    /**
     * 税率
     */
    @Excel(name = "税率")
    private BigDecimal taxRate;

    /**
     * 收入成本标识(0收入,1成本)
     */
    @Excel(name = "收入成本标识(0收入,1成本)")
    private Long type;

    /**
     * 总金额
     */
    @TableField(value = "z_money")
    @Excel(name = "总金额")
    private BigDecimal zmoney;

    /**
     * 网点ID
     */
    @Excel(name = "网点ID")
    private Long jcOrganizationId;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("createName", getCreateName())
                .append("createTime", getCreateTime())
                .append("description", getDescription())
                .append("modifyName", getModifyName())
                .append("modifyTime", getModifyTime())
                .append("name", getName())
                .append("status", getStatus())
                .append("csTime", getCsTime())
                .append("input", getInput())
                .append("operator", getOperator())
                .append("taxRate", getTaxRate())
                .append("type", getType())
                .append("zmoney", getZmoney())
                .append("jcOrganizationId", getJcOrganizationId())
                .toString();
    }
}
